关于LaTeX格式 在matplotlib 中的使用 |
您所在的位置:网站首页 › matplotlib 添加公式 › 关于LaTeX格式 在matplotlib 中的使用 |
#导入几个必要的科学计算库
import numpy as np
import matplotlib.pyplot as plt
在画函数图时我们经常碰到画好图,加图例(legend)时要写LaTeX一脸懵逼,所以,特意整理一份常用的LaTeX函数格式以供学习,参考。先看看对我们写函数来说像是油盐酱醋必不可少的符号LaTeX表示。 运算法则 : 加:+ 或 \plus 减:- 或 \minus 乘: \times 除:\frac {分子} {分母} 求极限:\lim 求和: \sum 连乘: \prod 求导:\mathrm{d}f 积分:\int (注:\mathrm 是打出罗马格式,排版逼格高) 上标:^ 下标: _{} 运用: 光看不如练,现在画个简单的函数体会一下LaTeX的优雅: #y=1/x 在pyplot中调用LaTeX前后表达式要加$号 x=np.linspace(-8, 8, 100) y = 1/x #分数的LaTeX格式 label=r"$y = \frac{1}{x}$" plot_fun(x,y,label) 效果如下下面,我们看看六大初等函数的表示,其他我们认识的函数都是由初等函数通过加减乘除及复合而成,掌握上述函数的Latex格式,其他函数Latex格式也自然能从中组合而成 常值函数 y=c (忽略 ==) #对于求幂,既可以用符号 **,也可以用函数 np.power(底数,幂数),个人喜欢啦! x=np.linspace(0.1, 8, 100) #函数,LaTeX格式设置 y0 = x**2 lab0 =r"$y = x^2 $" y1 = np.power(x,1/2) lab1 = r"$y = \sqrt{x}$" #可以看到n次根的次数n 用[n]表示 y2 = np.power(x, 1/3) lab2 = r"$y = \sqrt[3]{x}$" y3 = np.power(x, -1) lab3 = r"$y = \frac{1}{x}$" y=[y0, y1, y2, y3] labels=[lab0, lab1, lab2, lab3] plots_func(x=x,y=y,label=labels)#指数函数 x=np.linspace(-5,5,100) #设置函数式和图例 y1 = np.power(np.e, x) lab1 = r"$y = e^x$" y2 = 2**(-x) lab2 = r"$y = 2^{ \minus{x} }$" #参数设置 y = [y1,y2] colors = ['r','g'] labels = [lab1, lab2] plot_funcs(x,y, labels, colors) #np支持求以2,10,e为底的对数。特殊情况下,我们可能要求以其他自然数为底的对数函数 #以a为底的对数函数可以表示为 a=3 y = np.log(x)/np.log(a) #对数函数,分别以e, 10, 3为底 x=np.linspace(0.01, 10, 100) y1 = np.log(x) lab1 = r"$y = \ln x$" #下标前加_ y2 = np.log10(x) lab2 = r"$y = \log_{a} x$" #以3为底的对数函数 y3 = np.log(x)/np.log(3) lab3 = r"$y = \log_{3} x$" y = [y1,y2,y3] colors = ['r','g','b'] labels = [lab1, lab2, lab3] plot_logs(x,y, labels, colors) #三角与反三角函数 注意函数的定义域 x=np.linspace(-5,5,100) y1 = np.sin(x) lab1 = r"$y = \sin{x}$" y2 = np.cos(x) lab2 = r"$y = \cos{x}$" #设置参数 y = [y1, y2] labels = [lab1, lab2] colors = ['r','g'] plot_trifun(x,y, labels, colors) ` 总结:肝好疼,求极限、求导、积分等下次再讨论把!!! #因为这不是一篇讨论画图的文章,下面的可以忽略,嘻嘻嘻.... #单图单个函数 def plot_fun(x,y, label): plt.figure(figsize = (8,6)) plt.plot(x, y ,linewidth = 1.0, color='r',label = label) plt.xlim(-1, 10) plt.ylim(-1, 10) plt.xlabel('x') plt.ylabel('y') #设置坐标刻度线 ticks = np.linspace(-2, 10, 7) plt.xticks(ticks) plt.yticks(ticks) #设置坐标轴gca() ax = plt.gca() #去掉边界线 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') #移动坐标轴 ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data', 0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data', 0)) #设置标签 plt.legend(loc='center') plt.grid() plt.show()``-------------------------------------------我是分界线------------------------------------------- #一个图多个函数 def plot_funcs(x,y, label, color): plt.figure(figsize = (8,6)) i = 0 for line in y: plt.plot(x, line ,linewidth = 1.2, color=color[i],label = label[i]) i+=1 plt.xlim(-5, 5) plt.ylim(-1, 8) plt.xlabel('x') plt.ylabel('y') #设置坐标刻度线 xticks = np.linspace(-5, 5, 7) yticks = np.linspace(0, 7, 8) plt.xticks(xticks) plt.yticks(yticks) #设置坐标轴gca() ax = plt.gca() #去掉边界线 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') #移动坐标轴 ax.xaxis.set_ticks_position('bottom') ax.spines['top'].set_position(('data', -5)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data', 0)) #设置标签 plt.legend(loc='center') plt.grid() plt.show()`-------------------------------------------我不是分割线------------------------------------------------ #同时画四张图 def plots_func(x,y, label): plt.figure(figsize=(12,9)) plt.xlim(-1, 10) plt.ylim(-1, 10) #subplot是划分多个区域,并指定在那个区域作图 ax1 = plt.subplot(221) ax1.plot(x, y[0], linewidth = 1.2, color='purple',label = label[0]) plt.legend(loc='center') ax2 = plt.subplot(222) ax2.plot(x, y[1], linewidth = 1.2, color='r',label = label[1]) plt.legend(loc='center') ax3 = plt.subplot(223) ax3.plot(x, y[2], linewidth = 1.2, color='b',label = label[2]) plt.legend(loc='center') ax4 = plt.subplot(224) ax4.plot(x, y[3], linewidth = 1.2, color='y',label = label[3]) plt.legend(loc='center') #设置标签 plt.show()参考文章:http://www.doc88.com/p-1498083691594.html |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |